using WeatherSystem.API.Models;

namespace WeatherSystem.API.Repositories
{
    /// <summary>
    /// 城市Repository接口
    /// </summary>
    public interface ICityRepository : IRepository<City>
    {
        Task<List<City>> GetActiveCitiesAsync();
        Task<PagedResult<object>> GetCitiesPagedAsync(
            int page, int pageSize, bool? isActive = null, 
            string? search = null, string? country = null);
        Task<City?> GetByNameAndCountryAsync(string name, string country);
        Task<List<City>> GetCitiesByCountryAsync(string country);
        Task<bool> IsCityExistsAsync(string name, string country);
    }
}